package com.itheima.d7_interface_demo;

/*
     请设计一个班级学生的信息管理模块：学生的数据有：姓名、性别、成绩
     功能1：要求打印出全班学生的信息； 功能2：要求打印出全班学生的平均成绩。
     --------------------------------------------------------------------------------------------
     注意！以上功能的业务实现是有多套方案的，比如：
     第1套方案：能打印出班级全部学生的信息；能打印班级全部学生的平均分。
     第2套方案：能打印出班级全部学生的信息（包含男女人数）；能打印班级全部学生的平均分（要求是去掉最高分、最低分）。

     要求：系统可以支持灵活的切换这些实现方案。

     实现步骤 :
        1 定义学生类Student,包含属性: 姓名、性别、成绩
        2 创建接口StudentOperator,定义需要实现的两个功能规则
                void printAllInfo(ArrayList<Student> students);
                void printAverageScore(ArrayList<Student> students);
        3 定义两个接口的实现类, 作为两套实现的方案
        4 定义班级管理类StudentManager∂
            包含属性 : 1 存储学生的集合,并添加初始数据学生  2 多态形式来确定当前使用的实现方案
            定义方法 : 分别调用打印学生信息和平均分
        5 在测试类中进行测试

 */
public class Test {
    public static void main(String[] args) {
        StudentManager sm = new StudentManager();
        sm.printAll();
        sm.printAvgScore();

    }
}
